package main

import "fmt"

// for循环
func main() {
	// 基本格式(常用)
	for i := 0; i < 10; i++ {
		fmt.Println(i)
	}

	// 变种1
	a := 5
	for ; a < 10; a++ {
		fmt.Println(a)
	}

	// 变种2
	var b int = 5
	for b < 10 {
		fmt.Println(b)
		b++
	}

	// 无限循环
	// for {  //死循环
	// 	fmt.Println(b)
	// }

	// for range（键值循环）
	// 用于遍历数组、切片、字符串、map、channel（通道）
	// 返回的值有以下规律：
	// 数组、切片、字符串返回索引和值
	// map返回键和值
	// channel只返回通道内的值
	fmt.Println("======》分割线======》")
	s := "Hello沙河"
	for i, v := range s { // 产生两个值：索引、值
		fmt.Printf("%d %c %v\n", i, v, v)
	}

}
